#include <iostream>
#include <cstring>
using namespace std;
const int N=1e4+10;

int v[N],w[N];
int dp[2*N];
int cnt[2*N];
int main()
{
	int n,m,b;
	cin>>n>>m>>b;
	for(int i=1;i<=n;i++)
	{
		cin>>w[i]>>v[i];
	}
	
	int max_a=0;
	for(int i=0;i<m;i++)
	{
		int t;
		cin>>t;
		max_a=max(max_a,t);
	}
	dp[0]=0;
	int maxw=0;
	for(int i=1;i<=n;i++)
	{
		for(int j=b;j>=0;j--)
		{
			if(j>=v[i])
				dp[j]=max(dp[j],dp[j-v[i]]+w[i]);
			maxw=max(dp[j],maxw);
		}
	}
	if(maxw==0)
	{
		cout<<-1<<endl;
	}
	else{
		int ret=max_a/maxw;
		if(max_a%maxw!=0)
		{
			ret++;
		}
		cout<<ret<<endl;
	}
	return 0;
}
